export default function () {
  return this.createNode({
    shape: 'custom-electric',
    width: 18,
    height: 40,
    markup: [
      {
        tagName: 'g',
        selector: 'group1',
        children: [
          {
            tagName: 'rect',
            selector: 'line1',
            groupSelector: 'line',
            attrs: {
              x: 9,
              y: 0
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine1_1',
            groupSelector: 'transverseLine',
            attrs: {
              x: 0,
              y: 4,
              width: 18
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine1_2',
            groupSelector: 'transverseLine',
            attrs: {
              x: 0,
              y: 7,
              width: 18
            }
          }
        ]
      },
      {
        tagName: 'g',
        selector: 'group2',
        children: [
          {
            tagName: 'rect',
            selector: 'line2',
            groupSelector: 'line',
            attrs: {
              x: 9,
              y: 7
            }
          },
          {
            tagName: 'circle',
            selector: 'lco',
            groupSelector: 'co',
            attrs: {
              cx: 9,
              cy: 20
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine2_1',
            groupSelector: 'transverseLine',
            attrs: {
              x: 0,
              y: 20,
              width: 18,
              transform: 'rotate(40 9 20)'
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine2_2',
            groupSelector: 'transverseLine',
            attrs: {
              x: 0,
              y: 20,
              width: 18,
              transform: 'rotate(-40 9 20)'
            }
          }
        ]
      },
      {
        tagName: 'g',
        selector: 'group3',
        children: [
          {
            tagName: 'rect',
            selector: 'line3',
            groupSelector: 'line',
            attrs: {
              x: 9,
              y: 29
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine3_1',
            groupSelector: 'transverseLine',
            attrs: {
              x: 0,
              y: 33,
              width: 18
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine3_2',
            groupSelector: 'transverseLine',
            attrs: {
              x: 2,
              y: 36,
              width: 14
            }
          },
          {
            tagName: 'rect',
            selector: 'transverseLine3_3',
            groupSelector: 'transverseLine',
            attrs: {
              x: 4,
              y: 39,
              width: 10
            }
          }
        ]
      }
    ],
    attrs: {
      line: {
        width: 0.1,
        height: 4
      },
      transverseLine: {
        height: 0.1
      },
      co: {
        r: 9,
        strokeWidth: 2
      }
    },
    ports: {
      items: [
        {
          group: 'top'
        }
      ]
    }
  })
}
